"""
统一日志模块 - 高性能Python日志解决方案

提供精确的调用位置捕获和异步日志处理功能，解决传统异步日志
无法准确显示调用位置的行业难题。

核心特性:
- 🎯 精确的调用位置捕获（文件名、函数名、行号）
- ⚡ 高性能异步日志处理，吞吐量提升5-6倍
- 📅 按天文件轮转，自动清理过期日志
- 🔧 动态日志级别调整，无需重启应用
- 🛡️ 零依赖设计，安装即用
- 🎨 简洁美观的日志格式

快速开始:
    >>> from unified_logger import logger
    >>> logger.info("应用启动成功")
    >>> logger.error("发生错误", exc_info=True)

高级用法:
    >>> from unified_logger import SyncUnifiedLogger, sync_logger
    >>> # 使用同步日志器（适用于简单脚本）
    >>> sync_logger.info("同步日志消息")
    >>> 
    >>> # 自定义日志处理器
    >>> from unified_logger import LogProcessor
    >>> processor = LogProcessor(log_dir="custom_logs", log_level="DEBUG")

异常处理:
    >>> from unified_logger import LoggerConfigError, LogWriteError
    >>> try:
    ...     logger.info("测试日志")
    ... except LogWriteError as e:
    ...     print(f"日志写入失败: {e}")
"""

from .core import LogProcessor
from .sync_logger import SyncUnifiedLogger, sync_logger
from .config import LogLevel, get_log_level, update_log_level
from .resource_manager import resource_manager
from typing import Optional

# 创建默认日志实例
logger = LogProcessor()

def close_all_loggers() -> None:
    """关闭所有日志处理器
    
    在程序退出时调用，确保所有文件句柄都被正确关闭
    这个方法会关闭所有注册的日志处理器，并清理资源
    
    示例:
        >>> import unified_logger
        >>> # ... 使用日志记录 ...
        >>> unified_logger.close_all_loggers()
    """
    # 关闭主日志处理器
    resource_manager.close_logger_handlers('unified_logger')
    
    # 关闭同步日志处理器
    resource_manager.close_logger_handlers('sync_unified_logger')
    
    # 执行全局清理
    resource_manager._cleanup_all()

__all__ = [
    'LogProcessor',
    'logger',
    'SyncUnifiedLogger', 
    'sync_logger',
    'LogLevel',
    'get_log_level',
    'update_log_level',
    'close_all_loggers'
]

__version__ = "1.2.0"
__author__ = "统一日志模块开发团队"
__description__ = "高性能统一日志解决方案，支持精确调用位置捕获"
__license__ = "MIT"
__url__ = "https://gitee.com/age00001/unified-logger"